﻿using System;
using System.Collections.Generic;
using System.Text;

namespace AlgorithmTest
{
    public class T_0024_MaxDepth
    {
        // 二叉树的最大深度

        // 给定一个二叉树，找出其最大深度。
        // 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
        // 说明: 叶子节点是指没有子节点的节点。

        public void Test()
        {
            var tree = new TreeNode(1)
            {
                left = new TreeNode(2)
                {
                    left = new TreeNode(3)
                },
                right = new TreeNode(6)
                {
                    left = new TreeNode(4)
                    {
                        right = new TreeNode(5)
                    }
                }
            };
            Console.WriteLine(MaxDepth(tree));
        }

        // 递归遍历
        public int MaxDepth(TreeNode root)
        {
            return root == null ? 0 : Math.Max(MaxDepth(root.left), MaxDepth(root.right)) + 1;
        }
    }
}
